package com.yvon.maple.service.msg.sub.model.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.yvon.boot.mybatis.model.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Map;

/**
 * 默认的订阅模板
 * 前端配置接收时使用
 * 包含了模板内容和默认的发送方式
 *
 * @author : Yvon
 * @since : 2021-12-30
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "msg_subscribe_template" ,autoResultMap = true)
public class SubscribeTemplate extends BaseEntity implements Serializable {

    /**
     * 标识
     */
    private String code;

    /**
     * 名称
     */
    private String name;

    /**
     * 订阅类型
     * 0 - 主动订阅
     * 1 - 被动订阅
     */
    private Integer type;

    /**
     * 默认的发送渠道及模板
     * 示例：{"im": 2, "sms": 3}
     * key:渠道类型,value:模板ID
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private Map<String, String> defaultChannelTemplate;

    /**
     * 状态
     * 0 - 未启用
     * 1 - 已启用
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;
}
